home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_13_09 / barbu / ctl.hpp < prev    next >
C/C++ Source or Header  |  1995-05-11  |  2KB  |  86 lines

  1. Listing5
  2.  
  3. //////// AB CLASSGEN Sat Apr 29 04:23:36 1995 ////////
  4. // CTL, an abstract control
  5. //////////////////////////////////////////////////////
  6. #if !defined(CTL_HPP)
  7. #define CTL_HPP
  8. #if !defined(RC_INVOKED)    // no Windows RC compiler
  9. #include "SHOWDATA.HPP"
  10. #include "DESCRIPT.HPP"
  11. #include "MEMBLOCK.HPP"
  12.  
  13. class CTL {
  14. public:
  15.     CTL(const DESCRIPT& Desc, SHOWDATA * Guru)
  16.             : _desc(Desc), _guru(Guru) { _hDlg = 0; }
  17.     virtual ~CTL() {}
  18.  
  19.     // these values should be computed on ctor:
  20.     int duW() { return _duw; }
  21.     int duH() { return _duh; }
  22.  
  23.     virtual int addToDlg(int nFirstFreeId,
  24.                         MEMBLOCK *pTemplateSoFar,
  25.                         int duX, int duY) = 0;
  26.                     // returns # of dialog items added
  27.  
  28.     void initScreen(HWND hDlg){
  29.             _hDlg = hDlg;
  30.             dataToScreen();
  31.             }
  32.     virtual BOOL wm_command(int nId, int nCommand)
  33.                             { return FALSE; }
  34.     virtual BOOL isDataOk() { return TRUE; }
  35.     virtual void saveData() = 0;
  36.  
  37. typedef struct DLGITEMTag {
  38.     int   dtilX;
  39.     int   dtilY;
  40.     int   dtilCX;
  41.     int   dtilCY;
  42.     int   dtilID;
  43.     long  dtilStyle;
  44.     BYTE  dtilClass;
  45.     char  dtilText[1];
  46.     BYTE   dtilInfo;
  47.     } DLGITEM;
  48.  
  49. protected:
  50.     SHOWDATA* _guru;
  51.     const DESCRIPT _desc;
  52.     int _duh, _duw;
  53.     HWND _hDlg;
  54.  
  55.     static const DLGITEM _Text;
  56.     static const DLGITEM _Edit;
  57.     static const DLGITEM _Check;
  58.     static const DLGITEM _Combo;
  59.     static const DLGITEM _Push;
  60.  
  61.     virtual void dataToScreen() = 0;
  62.  
  63. private:
  64.     CTL();
  65.     CTL(const CTL&);
  66.     CTL& operator=(const CTL&);
  67. };
  68.  
  69. class CTLMAPPER {
  70. public:
  71.     virtual int duwText(const char szS[],
  72.             BOOL bForButton = FALSE) const = 0;
  73.     virtual int duhText() const = 0;
  74.     virtual int duhEdit() const = 0;
  75.     virtual int duhPush() const = 0;
  76.     virtual int duSquareBox() const = 0;
  77.     virtual int duwScreen() const = 0;
  78.     virtual int duhScreen() const = 0;
  79.     };
  80.  
  81. inline int max( int a, int b){ return a>b?a:b; }
  82. inline int min( int a, int b){ return a>b?b:a; }
  83.  
  84. #endif
  85. #endif
  86.